//package com.xxl.job.admin.core.alarm.impl;
//
//import com.alibaba.fastjson.JSON;
//import com.seepine.http.util.HttpUtil;
//import com.xxl.job.admin.core.alarm.JobAlarm;
//import com.xxl.job.admin.core.model.XxlJobInfo;
//import com.xxl.job.admin.core.model.XxlJobLog;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Component;
//import java.text.SimpleDateFormat;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.HashMap;
//import java.util.List;
//
///**
// * @author syh
// * @date 2021/8/13 13:25
// * 实现钉钉发送预警信息
// */
//@Component
//public class DingJobAlarm  implements JobAlarm {
//
//    private static final int timeout = 10000;
//
//    @Value("${alarm.dingWebhook:null}")
//    private String dingWebhook;
//
//    @Override
//    public boolean doAlarm(XxlJobInfo info, XxlJobLog jobLog) {
//        boolean dingResult = true;
////        System.out.println("ding ---------------------");
//        try {
//            StringBuilder content = new StringBuilder("任务失败!\n");
//
//            content.append("任务名称城市数据：").append(info.getJobDesc()).append("\n");
//            content.append("负责人：").append(info.getAuthor()).append("\n");
//            content.append("执行器名称：").append(info.getExecutorHandler()).append("\n");
//            content.append("执行器ip：").append(jobLog.getExecutorAddress()).append("\n");
//            content.append("任务参数：").append(jobLog.getExecutorParam()).append("\n");
//            String msg = jobLog.getTriggerMsg();
//            if(null != msg && !"".equals(msg.trim())){
//                int start = msg.lastIndexOf("")+11;
//                int end = msg.lastIndexOf("");
//                if (end <= start){
//                    end = msg.lastIndexOf("");
//                }
//                msg = msg.substring(start, end);
//            }
//            content.append(msg).append("\n");
//            content.append("执行任务时间：").append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())).append("\n");
//
//            List mobileList = new ArrayList<>();
//            mobileList.add(info.getAuthor());
//
//            String reqStr = buildReqStr(content.toString(), false, mobileList);
//
//            //推送消息（http请求）
//            String result = postJson(dingWebhook, reqStr);
//            //System.out.println("result == " + result);
//
//        } catch (Exception e) {
//            e.printStackTrace();
//            dingResult = false;
//        }
//        return dingResult;
//    }
//
//    private static String buildReqStr(String content, boolean isAtAll, List mobileList) {
//        //消息内容
//        HashMap contentMap = new HashMap<>();
//        contentMap.put("content", content);
//        //通知人
//        HashMap atMap = new HashMap<>();
//        //1.是否通知所有人
//        atMap.put("isAtAll", isAtAll);
//        //2.通知具体人的手机号码列表
//        atMap.put("atMobiles", mobileList);
//
//        HashMap reqMap = new HashMap<>();
//        reqMap.put("msgtype", "text");
//        reqMap.put("text", contentMap);
//        reqMap.put("at", atMap);
//        return JSON.toJSONString(reqMap);
//
//    }
//
//
//    private static String postJson(String url, String content){
//        String body = null;
//        try {
//            body = HttpUtil.post(url, content);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return body;
//    }
//}
//
